<?php

// 刷新房贷利率配置

defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require __DIR__ . '/../vendor/autoload.php';
require __DIR__ . '/../vendor/yiisoft/yii2/Yii.php';

require __DIR__ . '/../common/config/bootstrap.php';
require __DIR__ . '/../console/config/bootstrap.php';

$config = yii\helpers\ArrayHelper::merge(
    require __DIR__ . '/../common/config/main.php',
    require __DIR__ . '/../common/config/main-local.php',
    require __DIR__ . '/../console/config/main.php',
    require __DIR__ . '/../console/config/main-local.php'
);

$application = new yii\console\Application($config);

// 引入SystemConfig模型
use common\models\db\SystemConfig;

echo "开始刷新房贷利率配置...\n";

// 商贷LPR 1-5年配置
$commercialLprShort = [
    [
        'label' => '2025最新LPR 1-5年',
        'value' => 3.95
    ],
    [
        'label' => 'LPR 1-5年 2024',
        'value' => 3.95
    ],
    [
        'label' => 'LPR 1-5年 2023',
        'value' => 4.20
    ]
];

// 商贷LPR 5年以上配置
$commercialLprLong = [
    [
        'label' => '2025最新LPR 5年以上',
        'value' => 4.20
    ],
    [
        'label' => 'LPR 5年以上 2024',
        'value' => 4.20
    ],
    [
        'label' => 'LPR 5年以上 2023',
        'value' => 4.45
    ]
];

// 公积金利率 1-5年配置
$fundRateShort = [
    [
        'label' => '公积金利率 1-5年 2025',
        'value' => 2.60
    ],
    [
        'label' => '公积金利率 1-5年 2024',
        'value' => 2.60
    ],
    [
        'label' => '公积金利率 1-5年 2023',
        'value' => 2.75
    ]
];

// 公积金利率 5年以上配置
$fundRateLong = [
    [
        'label' => '公积金利率 5年以上 2025',
        'value' => 3.10
    ],
    [
        'label' => '公积金利率 5年以上 2024',
        'value' => 3.10
    ],
    [
        'label' => '公积金利率 5年以上 2023',
        'value' => 3.25
    ]
];

// 配置键名定义
$configKeys = [
    // 商贷LPR 1-5年
    'commercial_lpr_short' => [
        'value' => json_encode($commercialLprShort, JSON_UNESCAPED_UNICODE),
        'desc' => '商贷LPR 1-5年利率选项',
        'rate_type' => SystemConfig::RATE_TYPE_COMMERCIAL,
        'term_type' => SystemConfig::TERM_TYPE_SHORT
    ],
    // 商贷LPR 5年以上
    'commercial_lpr_long' => [
        'value' => json_encode($commercialLprLong, JSON_UNESCAPED_UNICODE),
        'desc' => '商贷LPR 5年以上利率选项',
        'rate_type' => SystemConfig::RATE_TYPE_COMMERCIAL,
        'term_type' => SystemConfig::TERM_TYPE_LONG
    ],
    // 公积金 1-5年
    'fund_rate_short' => [
        'value' => json_encode($fundRateShort, JSON_UNESCAPED_UNICODE),
        'desc' => '公积金贷款 1-5年利率选项',
        'rate_type' => SystemConfig::RATE_TYPE_FUND,
        'term_type' => SystemConfig::TERM_TYPE_SHORT
    ],
    // 公积金 5年以上
    'fund_rate_long' => [
        'value' => json_encode($fundRateLong, JSON_UNESCAPED_UNICODE),
        'desc' => '公积金贷款 5年以上利率选项',
        'rate_type' => SystemConfig::RATE_TYPE_FUND,
        'term_type' => SystemConfig::TERM_TYPE_LONG
    ],
    // 默认商贷利率 1-5年
    'default_commercial_rate_short' => [
        'value' => json_encode([['label' => '默认商贷利率 1-5年', 'value' => 3.95]], JSON_UNESCAPED_UNICODE),
        'desc' => '默认商贷利率 1-5年',
        'rate_type' => SystemConfig::RATE_TYPE_COMMERCIAL,
        'term_type' => SystemConfig::TERM_TYPE_SHORT
    ],
    // 默认商贷利率 5年以上
    'default_commercial_rate_long' => [
        'value' => json_encode([['label' => '默认商贷利率 5年以上', 'value' => 4.20]], JSON_UNESCAPED_UNICODE),
        'desc' => '默认商贷利率 5年以上',
        'rate_type' => SystemConfig::RATE_TYPE_COMMERCIAL,
        'term_type' => SystemConfig::TERM_TYPE_LONG
    ],
    // 默认公积金利率 1-5年
    'default_fund_rate_short' => [
        'value' => json_encode([['label' => '默认公积金利率 1-5年', 'value' => 2.60]], JSON_UNESCAPED_UNICODE),
        'desc' => '默认公积金利率 1-5年',
        'rate_type' => SystemConfig::RATE_TYPE_FUND,
        'term_type' => SystemConfig::TERM_TYPE_SHORT
    ],
    // 默认公积金利率 5年以上
    'default_fund_rate_long' => [
        'value' => json_encode([['label' => '默认公积金利率 5年以上', 'value' => 3.10]], JSON_UNESCAPED_UNICODE),
        'desc' => '默认公积金利率 5年以上',
        'rate_type' => SystemConfig::RATE_TYPE_FUND,
        'term_type' => SystemConfig::TERM_TYPE_LONG
    ]
];

$count = 0;
$now = date('Y-m-d H:i:s');

foreach ($configKeys as $key => $config) {
    $model = SystemConfig::findOne(['config_key' => $key]);
    
    if (!$model) {
        $model = new SystemConfig();
        $model->config_key = $key;
        $model->created_at = $now;
        echo "创建新配置: {$key}\n";
    } else {
        echo "更新现有配置: {$key}\n";
    }
    
    $model->config_value = $config['value'];
    $model->description = $config['desc'];
    $model->term_type = $config['term_type'];
    $model->rate_type = $config['rate_type'];
    $model->updated_at = $now;
    
    if ($model->save()) {
        $count++;
    } else {
        echo "保存配置 {$key} 失败: " . json_encode($model->getErrors(), JSON_UNESCAPED_UNICODE) . "\n";
    }
}

echo "完成! 共处理 {$count} 条配置\n";

// 显示最终配置结果
echo "\n当前房贷利率配置列表：\n";
echo "-----------------------------------\n";
$configs = SystemConfig::find()->all();
foreach ($configs as $config) {
    echo sprintf(
        "%-30s | %-15s | %-15s | %s\n", 
        $config->config_key, 
        $config->term_type ?: 'N/A', 
        $config->rate_type ?: 'N/A', 
        $config->description
    );
}
echo "-----------------------------------\n"; 